home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
095
/
tbbs105.arc
/
BBS.PAS
next >
Wrap
Pascal/Delphi Source File
|
1985-10-24
|
7KB
|
203 lines
{$R-}
{$C-}
{$U-}
program TurboBBS;
(*******************************************************************)
(* *)
(* Turbo Bulletin Board System Source Code Master Version 1.05 *)
(* *)
(* (c) 1985 by Robert H. Maxwell *)
(* 201 - 2275 West 7th Avenue, *)
(* Vancouver, British Columbia, CANADA *)
(* V6K 1Y3 *)
(* *)
(* Original System running 300/1200 baud, 24hrs: (604) 738-7811 *)
(* Written for a Kaypro 2-84 using Rixon 212A Intelligent modem *)
(* Modified for IBM PC use with Hayes-compatible modems *)
(*
(* If you like this program, it would most appreciated if you *)
(* sent $30 to the above address. If you choose to operate a BBS *)
(* with it, please forward the details so you can be kept up to *)
(* date with changes to the program. *)
(* *)
(* The author has released this code to the public domain, but *)
(* reserves all rights to the program. No other party is to make *)
(* any charge for this program other than for media and special *)
(* preparation charges, such as customization, *)
(* *)
(* While every reasonable effort has been made to ensure the *)
(* reliability of this program, the author assumes no liability *)
(* for any damages that may arise from its use. *)
(* *)
(* Files required for compile: BBS.PAS (this file) *)
(* BBS2.INC (support routines) *)
(* MACHDEP.IBM (machine dependent) *)
(* IO.INC (Input/Output drivers) *)
(* MAILSYS.INC (Sections named here) *)
(* FILESYS.INC (XMODEM code here) *)
(* *)
(* Information files required: BBSINFO.LBR (members listed below) *)
(* *)
(* The following files are created by the program: *)
(* MESSAGES.BBS (Message table) *)
(* FILES.BBS (Files table) *)
(* Clear these periodically: / COMMENTS.BBS (Comments for Sysop) *)
(* They can grow quickly... \ LOG.BBS (call log file) *)
(* IDS.BBS (user list) *)
(* *)
(* .TXT files are WordStar editable; .BBS files are program data *)
(* maintained by the program. *)
(* User SYSOP is automatically given sysop access on system. *)
(* *)
(*******************************************************************)
const
version = '1.05';
clockin = true; { Set to false if no clock available. }
sectsin = true; { Use to turn section feature on/off. }
openBBS = true; { Selects a private or public system. }
messdrive = 'C:'; { Drive on which messages go }
filedrive = 'C:'; { Drive for storing files }
applying = 'BBSINFO/APPLYING.TXT';
welcome = 'BBSINFO/WELCOME.TXT'; {Info files: }
otherBBS = 'BBSINFO/BBSLIST.TXT'; {text before "/"}
helpfile = 'BBSINFO/BBSHELP.TXT'; {is name of the }
sysinfo = 'BBSINFO/SYSINFO.TXT'; {.LBR library }
meetings = 'BBSINFO/MEETING.TXT'; {file with the }
bulletin = 'BBSINFO/BULLETIN.TXT'; {member filename}
filehelp = 'BBSINFO/FILEHLP.TXT'; {after the "/". }
mainmenu = 'BBSINFO/MAINMENU.TXT';
readmenu = 'BBSINFO/READMENU.TXT';
filemenu = 'BBSINFO/FILEMENU.TXT';
editmenu = 'BBSINFO/EDITMENU.TXT';
sysop = 5; { Access levels }
reg = 2;
newuser = 1;
twit = 0;
noecho = false;
echo = true;
null = #0;
abort = #3;
bell = #7;
bksp = #8;
tab = #9;
lnfd = #10;
cr = #13;
pause = #19;
esc = #27;
space = ' ';
type
name = string[14];
longname = string[25];
filbuffer = array[0..127] of byte;
rate = (slow,fast);
line = string[80];
person = string[27];
long = string[150];
sysid = record
user: person;
exfl: byte;
lsto: name;
lstm: integer;
pass: name;
acc: byte;
clr: name;
bsp: char;
lnf: char;
upc: boolean;
wid: byte;
end;
log = record
who: integer;
when: name;
done: name;
end;
yesno = array[boolean] of string[3];
const yn: yesno = ('NO','YES');
var
libfile: file;
libbuff: filbuffer;
libeof: boolean;
logfile: file of log;
logrec: log;
idfile: file of sysid;
idrec: sysid;
caller: person;
password,
timeon,
timeoff,
cs,
message: name;
baud: rate;
buffer: long;
access: byte;
libsects,
usernum,
lastmess,
nextmess,
charcount,
lastspace,
bufpointer,
width: integer;
controls,
printon,
local,
filesopen,
messopen,
caps,
expert: boolean;
exitchar, bl, lf, bs : char;
sec, onsec, offsec : byte;
min, onmin, offmin : byte;
hour, onhour, offhour : byte;
date, ondate, offdate : byte;
month, onmonth, offmonth : byte;
usesec, usemin, usehour : integer;
{$I MACHDEP.IBM}
{$I IO.INC}
{$I MAILSYS.INC}
{$I FILESYS.INC}
{$I BBS2.INC}
begin
lowvideo;
exitchar := space;
local := false;
resetbuff;
setup;
defaults;
awaitcall;
repeat
if clockin then begin
clock(onmonth, ondate, onhour, onmin, onsec);
timeon := time(onmonth, ondate, onhour, onmin, onsec);
end;
flush;
resetbuff;
lineout('TurboBBS version ' + version);
if cts and not cancelled then outfile(welcome);
if cts and not cancelled then outfile(bulletin);
if cts then signon(caller);
if cts then initmess;
readmine; {checks for cts internally}
if cts then command;
writeln('hung up...');
endcall;
if messopen then closemess;
close(idfile);
unload;
defaults;
awaitcall;
until exitchar = abort;
end.